package com.cskaoyan.javase.array._3exception._3length;
/**
 * 思考：
 * 数组长度为0和数组是null以及数组未初始化，有啥区别？
 * 数组没有初始化,不能做任何操作
 * 但是长度为0的数组,和等于null的数组,可以认为是经过了初始化,虽然使用过程中可能有问题,但终究是可用的
 *
 * 初学者的问题:
 * 既然引用数据类型具有默认初始化，对象中的元素具有默认值，那为什么声明一个数组后为什么不能立刻使用呢？
 * 对象中的元素才具有默认初始化,具有默认值,但是引用,是一个局部变量,必须手动初始化才能使用,没有默认值!!
 *
 * @since 11:36
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr;
        // System.out.println(arr);
        // System.out.println(arr.length);
        int[] arr2 = new int[0];
        System.out.println(arr2.length);
        // System.out.println(arr2[0]);

        // 空指针异常原因是用指向null的引用操作对象,但不操作对象,只输出不会有报错
        int[] arr3 = null;
        System.out.println(arr3);
        // System.out.println(arr3.length);
        // System.out.println(arr3[0]);
    }
}
